MongoDB এর জন্য Security Best Practices গাইড ও নোট

Database Tutorials - মঙ্গোডিবি (MongoDB) - MongoDB Security
406

MongoDB একটি শক্তিশালী ডেটাবেস সিস্টেম, তবে এটি নিরাপত্তার জন্য কিছু অতিরিক্ত কনফিগারেশন এবং কার্যকরী পদক্ষেপের প্রয়োজন। ডেটাবেস অ্যাপ্লিকেশনগুলির নিরাপত্তা নিশ্চিত করতে MongoDB এর জন্য কিছু সেরা নিরাপত্তা অভ্যাস অনুসরণ করা উচিত। এখানে MongoDB এর জন্য কিছু গুরুত্বপূর্ণ Security Best Practices আলোচনা করা হল:


1. Authentication (প্রমাণীকরণ) সক্ষম করা

MongoDB ডিফল্টভাবে প্রমাণীকরণ (authentication) নিষ্ক্রিয় থাকে, তাই এটি সক্রিয় করা অত্যন্ত গুরুত্বপূর্ণ। MongoDB তে প্রমাণীকরণ সক্ষম করার মাধ্যমে, কেবলমাত্র অনুমোদিত ব্যবহারকারীরাই ডেটাবেসে প্রবেশ করতে পারবে।

  • MongoDB Authentication সক্ষম করা:
    MongoDB তে প্রমাণীকরণ সক্ষম করতে MongoDB এর --auth ফ্ল্যাগ ব্যবহার করতে হবে:

    mongod --auth
    
  • ব্যবহারকারী তৈরি করা:
    MongoDB তে ব্যবহারকারী তৈরি করতে admin ডাটাবেসে ব্যবহারকারী তৈরি করতে হবে:

    use admin
    db.createUser({
        user: "myUserAdmin",
        pwd: "myUserAdminPassword",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
    })
    

2. Authorization (অনুমতি) কনফিগার করা

MongoDB তে Role-Based Access Control (RBAC) ব্যবহার করে আপনি ব্যবহারকারীদের বিভিন্ন স্তরের অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন। MongoDB তে বিভিন্ন ধরনের ভূমিকা (roles) রয়েছে, যেমন read, readWrite, dbAdmin, userAdmin, ইত্যাদি।

  • ব্যবহারকারীর ভূমিকা নির্ধারণ করা: MongoDB তে ব্যবহারকারীর জন্য সঠিক ভূমিকা (role) নির্ধারণ করা খুবই গুরুত্বপূর্ণ। এটি নিশ্চিত করবে যে ব্যবহারকারী কেবল তার অনুমোদিত কাজগুলোই করতে পারে।

    উদাহরণস্বরূপ, একটি নির্দিষ্ট ডাটাবেসের জন্য একটি ব্যবহারকারীকে শুধু পড়ার অনুমতি দেওয়া:

    use myDatabase
    db.createUser({
        user: "myReader",
        pwd: "myPassword",
        roles: [ { role: "read", db: "myDatabase" } ]
    })
    

3. SSL/TLS এনক্রিপশন ব্যবহার করা

MongoDB তে ট্রান্সমিশন ডেটা এনক্রিপশন সক্রিয় করা উচিত, বিশেষত যখন ডেটাবেস এবং ক্লায়েন্ট সার্ভার দূরবর্তী অবস্থানে থাকে। MongoDB SSL (Secure Sockets Layer) বা TLS (Transport Layer Security) এনক্রিপশন সমর্থন করে।

  • SSL/TLS এনক্রিপশন সক্ষম করা: MongoDB সার্ভারে SSL এনক্রিপশন সক্ষম করতে, mongod এবং mongos কমান্ডে --sslMode ফ্ল্যাগ ব্যবহার করতে হবে:

    mongod --sslMode requireSSL --sslPEMKeyFile /path/to/server.pem
    

    এবং ক্লায়েন্টে SSL সংযোগ সক্রিয় করতে:

    mongo --ssl --sslCAFile /path/to/ca.pem --sslPEMKeyFile /path/to/client.pem
    

4. MongoDB Firewall এবং Network Security

MongoDB সার্ভারটি বাইরের অ্যাক্সেস থেকে সুরক্ষিত রাখা অত্যন্ত গুরুত্বপূর্ণ। আপনার সার্ভারের সাথে সম্পর্কিত ফায়ারওয়াল কনফিগারেশন ঠিকভাবে সেট করা উচিত, যেন শুধুমাত্র অনুমোদিত IP অ্যাড্রেস থেকে MongoDB সার্ভারে অ্যাক্সেস পাওয়া যায়।

  • ফায়ারওয়াল কনফিগারেশন:
    MongoDB সার্ভারের জন্য একটি সুরক্ষিত ফায়ারওয়াল কনফিগার করুন, যা শুধুমাত্র নির্দিষ্ট IP রেঞ্জ বা নির্দিষ্ট অ্যাপ্লিকেশন থেকে MongoDB সার্ভারে অ্যাক্সেসে অনুমতি দেয়।
  • নেটওয়ার্ক নিরাপত্তা:
    MongoDB সার্ভারকে public-facing করতে না দিয়ে, একে ভেতরের নেটওয়ার্কে রাখতে এবং একটি VPN (Virtual Private Network) এর মাধ্যমে অ্যাক্সেস করতে সুপারিশ করা হয়।

5. Encryption at Rest (ডেটার এনক্রিপশন)

MongoDB তে ডেটা স্টোর করার সময় যদি এনক্রিপশন প্রয়োজন হয়, তবে Encryption at Rest ব্যবহার করা উচিত। MongoDB Enterprise Edition এ Encrypted Storage Engine বৈশিষ্ট্য রয়েছে, যা ডেটার এনক্রিপশন নিশ্চিত করে।

  • Encrypted Storage Engine সক্রিয় করা:
    MongoDB Enterprise Edition এ ইনস্টল করার সময় এনক্রিপশন সক্ষম করা যেতে পারে:

    mongod --enableEncryption --encryptionKeyFile /path/to/keyfile
    

6. লগ ফাইল এবং মনিটরিং কনফিগারেশন

MongoDB সার্ভারের নিরাপত্তা নিশ্চিত করতে লগ ফাইলগুলি মনিটর করা গুরুত্বপূর্ণ। লগ ফাইলগুলি ব্যবহারকারীর কার্যক্রম এবং ডেটাবেসে যেকোনো সন্দেহজনক কার্যক্রমের জন্য একটি কার্যকরী সরঞ্জাম হিসেবে কাজ করতে পারে।

  • MongoDB লগ ফাইল কনফিগার করা:
    MongoDB এর লগ ফাইল কনফিগারেশন আপনি mongod.conf ফাইলে systemLog সেটিংস এর মাধ্যমে করতে পারেন:

    systemLog:
      destination: file
      path: /var/log/mongodb/mongod.log
      logAppend: true
    
  • মনিটরিং:
    MongoDB এর মেট্রিক্স এবং লগ মনিটর করার জন্য MongoDB Atlas বা তৃতীয় পক্ষের মনিটরিং টুল (যেমন: Prometheus, Grafana) ব্যবহার করা যেতে পারে।

7. নিরাপদ পাসওয়ার্ড ব্যবহারের প্রথা

MongoDB ডেটাবেসে নিরাপদ পাসওয়ার্ড ব্যবহার অত্যন্ত গুরুত্বপূর্ণ। পাসওয়ার্ড অবশ্যই শক্তিশালী এবং আনপ্রেডিক্টেবল হওয়া উচিত।

  • পাসওয়ার্ড পলিসি:
    MongoDB তে ব্যবহৃত পাসওয়ার্ডগুলি নিয়মিতভাবে পরিবর্তন করুন এবং অত্যন্ত শক্তিশালী পাসওয়ার্ড ব্যবহার করুন।
  • পাসওয়ার্ড ম্যানেজার ব্যবহার করা:
    পাসওয়ার্ড ম্যানেজার ব্যবহার করার মাধ্যমে MongoDB এর সকল ব্যবহারকারীর পাসওয়ার্ড সুরক্ষিত রাখা যায়।

8. Audit Logging ব্যবহার করা

MongoDB Enterprise Edition এ Audit Logging সুবিধা উপলব্ধ, যা ডেটাবেসের সকল অ্যাক্সেস এবং কার্যক্রম ট্র্যাক করতে সহায়তা করে। এটি নিরাপত্তা ঝুঁকি এবং সন্দেহজনক কার্যক্রম সনাক্ত করতে সহায়ক।

  • Audit Log সক্রিয় করা: MongoDB তে Audit Logging সক্রিয় করার জন্য mongod.conf ফাইলে এডিট করতে হবে:

    security:
      authorization: enabled
      auditLog:
        destination: file
        path: /var/log/mongodb/audit.log
    

সারাংশ

MongoDB এর নিরাপত্তা নিশ্চিত করার জন্য অনেক পদক্ষেপ রয়েছে, যেমন প্রমাণীকরণ এবং অনুমতির সঠিক কনফিগারেশন, এনক্রিপশন সক্ষম করা, নিরাপদ নেটওয়ার্ক কনফিগারেশন এবং মনিটরিং। MongoDB এর জন্য সেরা নিরাপত্তা অভ্যাস অনুসরণ করলে ডেটাবেসের সুরক্ষা, পারফরম্যান্স, এবং অ্যাভেইলেবিলিটি নিশ্চিত করা সম্ভব। MongoDB ডেটাবেসে শক্তিশালী নিরাপত্তা কৌশলগুলি বাস্তবায়ন করা অত্যন্ত গুরুত্বপূর্ণ, বিশেষত যখন আপনার ডেটাবেসে গুরুত্বপূর্ণ বা সংবেদনশীল তথ্য সংরক্ষিত থাকে।

Content added By
Promotion

Are you sure to start over?

Loading...